home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 004 / educat.arc / MATHPAR.BAS < prev    next >
BASIC Source File  |  1986-06-20  |  19KB  |  347 lines

  1. 1 '*** EDITED BY WALTER S. KEY FOR SOFTWARE EXPRESS (10-13-1985) ***
  2. 2 REM ----------------WORDIES-------------------------------------
  3. 1000 REM  WORDIES - a word problem generating program
  4. 1010 REM  by Michail Potts    Printed in Creative Computing 10-81
  5. 1020 REM  PO Box 88 Caspar Ca 95420 (707) 964 0375
  6. 1030 REM  ADAPTED TO CCII BY PATRICK LEABO
  7. 1040 REM ADAPTED TO IBM PC BY PATRICK LEABO
  8. 1042 REM ADAPTED FOR PCjr BY G.WEST, ALLENDALE SC 29810 10/10/84
  9. 1043 RANDOMIZE TIMER
  10. 1044 DEF SEG=0:POKE 1047,0
  11. 1045 ON ERROR GOTO 5000
  12. 1050 POKE 106,0:SCREEN 0,1:KEY OFF:WIDTH 80:COLOR 15,1,1:CLS
  13. 1055 DEFINT A-Z:COMMON MENU
  14. 1060 DIM T$(47),M(42,8),O(14),XP(15),YP(15)
  15. 1080 SP$= "                    "
  16. 1090 SS$= "                                       "
  17. 1100 GOTO 1120
  18. 1110 PRINT :CLS:PRINT TAB( 20)"*** WORDIES *** ":RETURN
  19. 1120 GOSUB 1110:PRINT TAB( 12)"A word-problem generating game":PRINT :PRINT
  20. 1130 PRINT "Word problems will be created with the information":PRINT "that you provide when asked."
  21. 1135 PRINT
  22. 1150 PRINT TAB(6);"1) ADDITION":PRINT TAB(6);"2) SUBTRACTION":PRINT TAB(6);"3) MULTIPLICATION":PRINT TAB(6);"4) DIVISION":PRINT
  23. 1160 PRINT TAB( 6);:PRINT "PRESS THE NUMBER FOR YOUR CHOICE! ";:WHILE I$="":I$=INKEY$:WEND:NL= VAL (I$):PRINT NL:PRINT :PRINT
  24. 1170 IF NL<1 THEN NL=4
  25. 1180 IF NL> 4 THEN NL= 4
  26. 1181 PRINT "This program will make up problems using the numbers you give it.":PRINT "It cannot use a number larger that 443 or smaller than 0; so don't":PRINT "use any of those.  Type the largest number you would like to work with"
  27. 1182 PRINT "and press the <ENTER> key."
  28. 1190 PRINT:PRINT TAB( 10);:INPUT "Largest number in any problem";NMX
  29. 1200 IF NMX> 443 THEN PRINT "443 IS THE MAXIMUM. TRY AGAIN!":GOTO 1190
  30. 1210 IF NMX< 1 THEN PRINT "Greater than zero please. TRY AGAIN!":GOTO 1190
  31. 1211 CLS
  32. 1212 PRINT "In the problems you will do, we will use things that you":PRINT "give us.  Whenever, the computer asks for an object or a name,":PRINT "type that object or name and press the <ENTER> key.":PRINT
  33. 1220 PRINT :PRINT TAB( 15)"I need 5 random objects:":PRINT :FOR N= 0 TO 4
  34. 1230 PRINT TAB( 20);N+1;":";
  35. 1231 INPUT " ",RO$(N)
  36. 1250 NEXT :GOTO 1280
  37. 1260 NL= 4:RO$(1)= "snail":RO$(2)= "bookend":RO$(3)= "wood stove":RO$(4)= "rocking chair"
  38. 1270 RO$(5)= "tractor":NMX= 9
  39. 1280 P1$= "Kelly":PS$= "her ":SX$= "she"
  40. 1290 AR= 0:WA= 0:NR= 0:GOSUB 1110:PRINT "  This program makes up word problems ...with your help. The"
  41. 1300 PRINT "screen will ask for names of people and for things to use":PRINT "in the problems it creates."
  42. 1310 PRINT :PRINT "  The computer will reject an answer with more than":PRINT "16 characters, OR that it thinks ";
  43. 1320 PRINT "is nonsense.":PRINT :PRINT "   Have a good time. Press ENTER when you're ready to go."
  44. 1330 I$= INKEY$:IF I$="" THEN 1330
  45. 1340 IF ASC(I$)<> 13 THEN 1330
  46. 1350 GOSUB 1110
  47. 1360 PRINT "Please type your name and press <ENTER>:":PRINT "(Use a capital letter followed by lowercase letters.)"
  48. 1370 INPUT " ",T$
  49. 1380 A$= T$:GOSUB 2880:IF CF= 1 THEN 1410
  50. 1390 PRINT :PRINT "Whatever you want me to call you, you're a person, and the":PRINT "names of persons begin with a ";
  51. 1400 PRINT "CAPITAL letter. Remember the":PRINT "SHIFT key, and please tell me again.":PRINT :GOTO 1360
  52. 1410 FP= 0:GOSUB 1490:N= INT(RND(1)* 3)+ 1:ON  N GOTO 1420,1440,1440:REM  FLOW CONTROL - GET OPER TYPE
  53. 1420 GOSUB 3010:IF NF= 0 THEN 1440:REM  GET NAME(S)
  54. 1430 PRINT "I detect nonsense! Please try again.":PRINT :GOTO 1420
  55. 1440 GOSUB 1530:REM  GET NUMBERS
  56. 1450 GOSUB 3130:REM  GET OBJECT NAME, PRINT FIRST PARA
  57. 1460 IF NQ< > CA THEN 1680
  58. 1470 K9= 0:LOCATE 18,1:PRINT "----------------------------------------------------------" :PRINT TAB(12);"That's RIGHT, ";A$;".":GOTO 2230:REM  RECORD KEEPING
  59. 1480 GOTO 1410
  60. 1490 REM  SETS OPERATION TYPE5
  61. 1500 NO= INT(NL* RND(1)+ 1):REM  1=+ 2=- 3=* 4=/
  62. 1510 RETURN 
  63. 1520 ON  NO GOTO 1530,1530,1540,1540:REM  NUMBER CRUNCHING
  64. 1530 N1= INT(NMX* RND(1)+ 1):ON  NO GOTO 1570,1580,1520,1520
  65. 1540 N1= INT(NMX/ 2* RND(1)):N2= INT(NMX/ 3* RND(1)):IF N2= 0 THEN N2= 1
  66. 1550 ON  NO GOTO  1520,1520,1600,1560
  67. 1560 N1= N1* N2:GOTO 1600
  68. 1570 N2= INT(NMX* RND(1)):GOTO 1600
  69. 1580 N2= INT(N1* RND(1)):IF N2> 1 THEN 1600
  70. 1590 N2= INT(N2+ .5):GOTO 1600
  71. 1600 RETURN 
  72. 1610 PRINT "I need the name of an object.";
  73. 1615 INPUT " ",T$
  74. 1630 ON NF GOTO  1640,1610
  75. 1650 XN= INT(3* RND(1)+ 1):ON  NX GOTO 1660,1670,1660
  76. 1660 OB$= T$
  77. 1670 N= INT(5* RND(1)):RO$(N)= T$:RETURN
  78. 1675 PRINT "----------------------------------------------------------"
  79. 1680 PRINT:PRINT:PRINT "----------------------------------------------------------"
  80. 1682 WA= WA+ 1:PRINT :PRINT " -<WRONG ANSWER>- ":PRINT "DO YOU WANT HELP ? ":PRINT "Y for YES or N for NO."
  81. 1685 PRINT "----------------------------------------------------------"
  82. 1690 I$= INKEY$:IF I$="" THEN 1690
  83. 1700 IF I$< > "N" THEN 1730
  84. 1710 K9= K9+ 1:IF K9= 3 THEN PRINT :PRINT "Sorry, you only get three trys.":GOTO 1740
  85. 1720 WA= WA- 1:PRINT :PRINT "********************************************":GOSUB 3680:GOTO 1460
  86. 1730 PRINT "  ...OKay:"
  87. 1740 PRINT "   What number do you start with";:INPUT NQ:IF NQ= N1 THEN 1760
  88. 1750 FP= FP+ 1:PRINT "No. Read the first part again carefully:":PRINT "   ";SQ$:GOTO 1740
  89. 1760 PRINT "   What is the second number";:INPUT NQ:IF NQ= N2 THEN 1780
  90. 1770 FP= FP+ 10:PRINT "No. Read the second part again carefully:":PRINT "    ";S2$:GOTO 1760
  91. 1780 PRINT "   What do you do with the numbers:  add";:IF NL= 1 THEN 1820
  92. 1790 PRINT ", subtract";:IF NL= 2 THEN 1820
  93. 1800 PRINT ",":PRINT "      multiply";:IF NL= 3 THEN 1820
  94. 1810 PRINT ",or divide";
  95. 1820 PRINT "?"
  96. 1830 I$= INKEY$:IF I$="" THEN 1830
  97. 1840 IF (NO= 1)* (I$= "Y") THEN PRINT "A";:GOTO 1900
  98. 1850 IF I$= "A" OR I$="a" OR I$="y" OR I$="Y" THEN 1900
  99. 1860 IF I$= "S" OR I$="s" THEN 1910
  100. 1870 IF I$= "M" OR I$="m" THEN 1920
  101. 1880 IF I$= "D" OR I$="d" THEN 1930
  102. 1890 PRINT "Try that, again, ";A$;".":GOTO 1830
  103. 1900 PRINT "Add":NQ= 1:GOTO 1940
  104. 1910 PRINT "Subtract":NQ= 2:GOTO 1940
  105. 1920 PRINT "Multiply":NQ= 3:GOTO 1940
  106. 1930 PRINT "Divide":NQ= 4
  107. 1940 IF NQ= NO THEN 2030
  108. 1950 FP= FP+ (NQ* 100):PRINT "No. To do this problem, you need to ";:ON NO GOTO 1960,1970,1980,2000
  109. 1960 PRINT " add.":PRINT "The clue: ";V$;" more.":PRINT "Don't you add";:GOTO 2010
  110. 1970 PRINT " subtract.":PRINT "The key words: ";V$:PRINT "So you subtract, right?":GOTO 2010
  111. 1980 PRINT " multiply.":PRINT "The words ";CHR$(34);V$;CHR$(34);" are the key.":PRINT "If you see equal groups, "
  112. 1990 PRINT "and you need to know how many they":PRINT "total, isn't it easier to multiply";:GOTO 2010
  113. 2000 PRINT "divide.":PRINT "You need to know how many ";V$;",":PRINT "so you divide";N1;" into";N2;" groups ..Right";
  114. 2010 INPUT Q$:IF  LEFT$(Q$,1)= "Y" THEN 2030
  115. 2020 PRINT "Well, ";A$;", I think the answer is YES."
  116. 2030 PRINT "  So do this problem:";"  ";N1;" ";:ON  NO GOTO 2040,2050,2060,2070
  117. 2040 CA= N1+ N2:PRINT "+ ";:GOTO 2080
  118. 2050 CA= N1- N2:PRINT "- ";:GOTO 2080
  119. 2060 CA= N1* N2:PRINT "* ";:GOTO 2080
  120. 2070 CA= N1/ N2:PRINT "/ ";
  121. 2080 PRINT N2;" = ?";
  122. 2090 MF= 0:GOSUB 2930
  123. 2100 PRINT I$;:T$= I$:GOSUB 2930
  124. 2110 IF MF= 1 THEN 2130
  125. 2120 T$= T$+ I$:PRINT I$;:GOSUB 2930:GOTO 2110
  126. 2130 NQ= VAL (T$):IF NQ= CA THEN 2190
  127. 2140 PRINT :PRINT :PRINT "   You need to work on your ";:ON NO GOTO 2150,2160,2170,2180 REM 5
  128. 2150 PRINT "addition ";:FP= FP+ 1000:GOTO 2200
  129. 2160 PRINT "subtraction ";:FP= FP+ 2000:GOTO 2200
  130. 2170 PRINT "multiplication ";:FP= FP+ 3000:GOTO 2200
  131. 2180 PRINT "division ";:FP= FP+ 4000:GOTO 2200
  132. 2190 PRINT :PRINT "Yes, you have it now!!";:GOTO 2220
  133. 2200 PRINT "facts."
  134. 2210 PRINT "The correct answer is ";CA;"."
  135. 2220 FOR N= 0 TO 2000:NEXT :NH= NH+ 1:GOTO 2290
  136. 2230 AR= AR+ 1:PRINT TAB(11);AR;" right answer";:IF AR= 1 THEN 2250
  137. 2240 PRINT "s";
  138. 2250 I= 0:PRINT " so far.":PRINT 
  139. 2260 PRINT "              PRESS <ENTER> TO  CONTINUE"
  140. 2270 PRINT"                  any other key to quit."
  141. 2275 PRINT "----------------------------------------------------------"
  142. 2280 I$=INKEY$:IF I$ = "" THEN 2280 ELSE IF I$<> CHR$(13) THEN 2550
  143. 2290 ON  NO GOTO 2300,2310,2320,2330
  144. 2300 OP$= "+":GOTO 2340
  145. 2310 OP$= "-":GOTO 2340
  146. 2320 OP$= "*":GOTO 2340
  147. 2330 OP$= "/"
  148. 2340 NN=LEN(OB$):NN=20-NN:R$(NR)=OB$+"s :"+LEFT$(SP$,NN)+STR$(N1)+OP$+STR$(N2)+" ="+STR$(CA)
  149. 2350 IF FP= 0 THEN 2370
  150. 2360 R$(NR)= R$(NR)+ "       <"+ STR$(FP)
  151. 2370 IF NR= 9 THEN 2390
  152. 2380 NR= NR+ 1:PRINT "==============================================================":GOTO 1410
  153. 2390 NT= 9
  154. 2400 CLS:PRINT :PRINT "This is what you've done.":PRINT
  155. 2410 T$= "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%":GOSUB 2990
  156. 2430 T$= "":GOSUB 2990
  157. 2440 T$= A$+ " has gotten"+ STR$(AR)+ " right,"+ STR$(WA)+ " wrong,":GOSUB 2990
  158. 2450 IC=INT(100* (AR/ (AR+ WA))):T$= "for a score of"+ STR$(IC)+ "%   ":IF IC< 95 THEN 2470
  159. 2460 T$= T$+ "VERY "
  160. 2470 IF IC< 90 THEN 2490
  161. 2480 T$= T$+ "WELL DONE, "+ A$+"."
  162. 2490 GOSUB 2990:T$="":GOSUB 2990:T$= "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%":GOSUB 2990
  163. 2500 PRINT :PRINT"Press ENTER for more":PRINT "or Q to quit."
  164. 2510 I$=INKEY$:IF I$="" THEN 2510 ELSE IF I$< > "Q" AND  I$ <> "q" THEN 2540
  165. 2520 PRINT "   It's been a pleasure doing business with you, ";A$
  166. 2530 PRINT "Please come again.":FOR N= 1 TO 1000:NEXT :COLOR 7,0:CLS:END
  167. 2540 CLS:FOR NR= 0 TO 9:R$(NR)= "":NEXT :NR= 0:GOTO 1410
  168. 2550 PRINT :PRINT "Quitting time, you say. Good.":NT= NR- 1:GOTO 2400
  169. 2560 REM 
  170. 2570 REM 2 KEYBOARD5
  171. 2580 REM 
  172. 2585 DEF SEG=0:POKE 1047,0
  173. 2590 NN= LEN(OB$):NN= 20- NN:R$(NR)= OB$+ "s :"+ LEFT$(SP$,NN)+ STR$(N1)+ OP$+ STR$(N2)+ " ="+ STR$(CA)
  174. 2600 T$= "":PRINT ">";
  175. 2610 I$= INKEY$:IF I$=""THEN 2610
  176. 2620 I= ASC(I$):IF (I> 31)* (I< 65) THEN 2670
  177. 2630 IF I> 96 THEN 2660
  178. 2640 IF I< 32 THEN 2610
  179. 2650 I= I+ 32:GOTO 2670
  180. 2660 I= I- 32
  181. 2670 PRINT CHR$(I);
  182. 2680 T$= T$+ CHR$(I):GOTO 2610
  183. 2690 IF I= 8 THEN 2720
  184. 2700 IF I= 13 THEN 2750
  185. 2710 GOTO 2610
  186. 2720 PRINT CHR$(I);:BS= LEN(T$)- 1:IF BS< 1 THEN 2740
  187. 2730 T$= LEFT$(T$,BS):GOTO 2610
  188. 2740 T$= "":GOTO 2610
  189. 2750 NF= 0:LT= LEN(T$):IF LT< 17 THEN 2770
  190. 2760 PRINT :PRINT "That's too long for my memory.  Please try again.":NF= 2:GOTO 2870
  191. 2770 V$(1)= "a":V$(2)= "e":V$(3)= "i":V$(4)= "o":V$(5)= "u"
  192. 2780 FOR K= 1 TO LT:FOR J= 1 TO 5:Q$= MID$ (T$,K,1):IF Q$= V$(J)THEN 2810
  193. 2790 NEXT J,K
  194. 2800 GOTO 2820
  195. 2810 NF= NF+ 1:GOTO 2790
  196. 2820 IF LT< 5 THEN 2840
  197. 2830 IF NF< INT(LT/ 4) THEN  NF= 1:GOTO 2870
  198. 2840 IF NF> 0 THEN 2860
  199. 2850 NF= 1:GOTO 2870
  200. 2860 NF= 0
  201. 2870 PRINT :RETURN 
  202. 2880 REM 2CHECKS FOR CAPITALS5
  203. 2885 IF T$="" THEN 2920
  204. 2890 T$= LEFT$(T$,1):IF  ASC(T$)< 90 THEN 2910
  205. 2900 CF= 0:GOTO 2920
  206. 2910 CF= 1
  207. 2920 RETURN 
  208. 2930 I$= INKEY$:IF I$="" THEN 2930
  209. 2940 I= ASC(I$):IF (I> 47)* (I< 58) THEN 2980
  210. 2950 IF I= 13 THEN 2970
  211. 2960 GOTO 2930
  212. 2970 MF= 1
  213. 2980 RETURN 
  214. 2990 PRINT T$:RETURN 
  215. 3000 REM  STORY GENERATION
  216. 3010 PRINT "I need the name of a person.  ";
  217. 3015 INPUT " ",T$
  218. 3030 ON NF GOTO 3040,3010
  219. 3050 P1$= T$:GOSUB 2880:IF CF= 1 THEN 3070
  220. 3060 PRINT "The names of persons begin with capital letters.":PRINT "Remember the SHIFT key. Please try again.":GOTO 3010
  221. 3070 PRINT "Is ";P1$+ " a he or a she?   ";
  222. 3075 INPUT " ",T$
  223. 3076 IF T$<>"he" AND T$<>"she" THEN 3070
  224. 3077 SX$=T$:IF SX$="he" THEN 3110
  225. 3080 IF SX$= "she" THEN 3100
  226. 3090 PRINT "I detect nonsense. I don't know any questions about ":PRINT SX$;",s anyway. Please try again.":GOTO 3070
  227. 3100 PS$= "her ":GOTO 3120
  228. 3110 PS$= "his "
  229. 3120 RETURN 
  230. 3130 N= INT(5*RND(1))
  231. 3140 ON N GOTO 3260,3160,3270,3170,3260,3180,3270,3190,3260,3200,3270,3210,3260,3220,3270,3230
  232. 3150 ON N GOTO 3260,3240,3260,3250
  233. 3160 OB$=RO$(1):GOTO 3280
  234. 3170 OB$=RO$(2):GOTO 3280
  235. 3180 OB$=RO$(3):GOTO 3280
  236. 3190 OB$=RO$(4):GOTO 3280
  237. 3200 OB$=RO$(5):GOTO 3280
  238. 3210 OB$=RO$(6):GOTO 3280
  239. 3220 OB$=RO$(7):GOTO 3280
  240. 3230 OB$=RO$(8):GOTO 3280
  241. 3240 OB$=RO$(9):GOTO 3280
  242. 3250 OB$=RO$(10):GOTO 3280
  243. 3260 GOSUB 1610:IF OB$< > "" THEN 3280
  244. 3270 N= INT(5* RND(1)):OB$= RO$(N)
  245. 3280 GOSUB 1110:PRINT "-------------------------";"(";AR+ WA+ 1;" )";
  246. 3290 PRINT "---------------------------":PRINT :ON  NO GOTO 3300,3490,3690,3980
  247. 3300 CA= N1+ N2:N= INT(1+ 5* RND(1)):ON N GOTO 3310,3350,3380,3420,3450
  248. 3310 QU$= "does "+ P1$:V$= SX$+ " takes"+ STR$ (N1)+ ", then finds"+ STR$ (N2):S1$= P1$+ " needs something "
  249. 3320 S1$= S1$+ "special at school today,"+CHR$(13)+"so "+ SX$+ " takes along"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN GOSUB 3530
  250. 3330 S1$= S1$+ ".":S2$= "On the way to school, "+ SX$+ " sees a hat by the"+CHR$(13)+"road; under it "+ SX$+ " finds"
  251. 3340 S2$= S2$+ STR$ (N2)+ " more.":GOTO 3660
  252. 3350 QU$= "do you":V$= "you own"+ STR$ (N1)+ ", then you're sold"+ STR$ (N2):S1$= "You look in your "+ OB$
  253. 3360 S1$= S1$+ " collection and see that you own"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN S1$= S1$+ "s"
  254. 3370 S1$= S1$+ ".":S2$= "Your friend, "+ P1$+ ", sells you"+ STR$ (N2)+ " more.":GOTO 3660
  255. 3380 QU$= "does "+ SX$:V$= SX$+ " made"+ STR$ (N1)+ ", then makes"+ STR$ (N2):S1$= "Last Monday, "+ P1$
  256. 3390 S1$= S1$+ " invented a machine that makes "+ OB$+ "s."+CHR$(13)+"That Monday, "+ SX$+ " made"+ STR$ (N1)+ " "+ OB$
  257. 3400 IF N1< > 1 THEN S1$= S1$+ "s"
  258. 3410 S1$= S1$+ ".":S2$= "The next day, "+ SX$+ " made"+ STR$ (N2)+ " more.":GOTO 3660
  259. 3420 QU$= "does "+ P1$:V$= SX$+ " bought"+ STR$ (N1)+ ", then buys"+ STR$ (N2):S1$= "Yesterday, "+ P1$
  260. 3430 S1$= S1$+ " bought"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN S1$= S1$+ "s"
  261. 3440 S1$= S1$+ ".":S2$= "Today, "+ SX$+ " goes to the store and buys"+ STR$ (N2)+ " more.":GOTO 3660
  262. 3450 QU$= "does "+ SX$:V$= P1$+ " found"+ STR$ (N1)+ ", then won"+ STR$ (N2):S1$= "This morning, "+ P1$
  263. 3460 S1$= S1$+ " looked in "+ PS$+ " pocket and found"+ STR$ (N1)+ " "+ OB$
  264. 3470 IF N1< > 1 THEN S1$= S1$+ "s"
  265. 3480 S1$= S1$+ ".":S2$= "Later, "+ SX$+ " won"+ STR$ (N2)+ " more in a bet with "+ A$+ ". (That's you.)":GOTO 3660
  266. 3490 CA= N1- N2:N= 5* RND (1)+ 1:ON N GOTO 3500,3540,3570,3600,3630
  267. 3500 S1$= "Last week, "+ P1$+ " got"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN GOSUB 3530
  268. 3510 S1$= S1$+ " for "+ PS$+ "birthday.":S2$= "On Saturday, "+ SX$+ " lost"+ STR$ (N2)+ " of them."
  269. 3520 QU$= "does "+ SX$:V$= P1$+ " got"+ STR$ (N1)+ ", then"+ STR$ (N2)+ " are lost":GOTO 3660
  270. 3530 S1$= S1$+ "s":RETURN 
  271. 3540 S1$="In your class at school, you made "+STR$(N1)+" "+CHR$(13)+OB$:IF N1=1 THEN 3560
  272. 3550 S1$=S1$+"s"
  273. 3560 S1$=S1$+", which you brought home.":S2$="On your way, you gave "+STR$(N2)+" of them to "+P1$+".":QU$="do you":V$="you make"+STR$(N1)+", then give away"+STR$(N2):GOTO 3660
  274. 3570 S1$=P1$+" was carrying "+STR$(N1)+" "+OB$:IF N1=1 THEN 3590
  275. 3580 S1$=S1$+"s"
  276. 3590 S1$=S1$+" in a box.":S2$="Coming down the hill, "+SX$+" fell, and"+STR$(N2)+" of them"+CHR$(13)+"rolled away.":QU$="does "+SX$:V$=SX$+" had"+STR$(N2)+" roll away.":GOTO 3660
  277. 3600 S1$=P1$+" found "+STR$(N1)+" "+OB$:IF N1=1 THEN 3620
  278. 3610 S1$=S1$+"s"
  279. 3620 S1$=S1$+" under "+PS$+" bed.":S2$="Bill, "+PS$+" big brother, took "+STR$(N2)+" of them away.":QU$="does "+P1$:V$=P1$+" found"+STR$(N1)+" but Bill took"+STR$(N2):GOTO 3660
  280. 3630 S1$=P1$+" gave you "+STR$(N1)+" "+OB$:IF N1=1 THEN 3650
  281. 3640 S1$=S1$+"s"
  282. 3650 S1$=S1$+" because "+SX$+" had too many.":S2$="Later, "+SX$+" lost all of them, and you generously"+CHR$(13)+"gave "+STR$(N2)+" back.":QU$="do you":V$=P1$+" gave you"+STR$(N1)+", you gave back"+STR$(N2)
  283. 3660 QU$= "How many "+ OB$+ "s "+ QU$+ " have now"
  284. 3670 PRINT S1$:PRINT :PRINT S2$
  285. 3680 PRINT :PRINT "    ";QU$;:INPUT "";NQ:PRINT "";:RETURN
  286. 3690 CA= N1* N2:N= 5* RND (1)+ 1:ON  N GOTO 3700,3750,3800,3860,3920
  287. 3700 S1$= "You get a surprise! "+ P1$+ " sends you"+ STR$ (N1)+ " box":V$= STR$ (N1)+ " box"
  288. 3710 IF N1< > 1 THEN S1$= S1$+ "es":S2$= S2$+ "es"
  289. 3720 S1$= S1$+ " in the mail.":V$= V$+ " ..."+ STR$ (N2)+ " in each box":S2$= "Each box has"+ STR$ (N2)+ "  "+ OB$
  290. 3730 IF N2< > 1 THEN S2$= S2$+ "s"
  291. 3740 S2$= S2$+ " in it!":QU$= "do you":GOTO 3660
  292. 3750 S1$=P1$+" won"+STR$(N1)+" ticket":V$=STR$(N1)+"ticket":IF N1=1 THEN 3770
  293. 3760 S1$=S1$+"s":V$=V$+"s"
  294. 3770 S1$=S1$+".":S2$="When "+SX$+" traded them in, "+SX$+" got"+STR$(N2)+" "+OB$:IF N2=1 THEN 3790
  295. 3780 S2$=S2$+"s"
  296. 3790 S2$=S2$+" for each ticket.":V$=V$+" ..."+STR$(N2)+" for each ticket":QU$="does "+SX$:GOTO 3660
  297. 3800 S1$="A flying saucer deposits"+STR$(N1)+" metal sphere":V$=STR$(N1)+" sphere":IF N1=1 THEN 3820
  298. 3810 S1$=S1$+"s":V1$=V1$+"s"
  299. 3820 S1$=S1$+" in your kitchen"+CHR$(13)+"sink.":S2$="When "+P1$+" opens them,"+STR$(N2)+" "+OB$:IF N2=1 THEN 3840
  300. 3830 S2$=S2$+"s pop":GOTO 3850
  301. 3840 S2$=S2$+" pops"
  302. 3850 S2$=S2$+" out of every one.":V$=V$+" ..."+STR$(N2)+" in every one.":QU$="do you":GOTO 3660
  303. 3860 S1$="Your friend, "+P1$+", dug up"+STR$(N1)+" can":V$=STR$(N1)+" can":IF N1=1 THEN 3880
  304. 3870 S1$=S1$+"s":V1$=V1$+"s"
  305. 3880 S1$=S1$+" full of "+OB$+"s.":S2$="There ":IF N2=1 THEN 3900
  306. 3890 S2$=S2$+"were "+STR$(N2)+" "+OB$+"s":GOTO 3910
  307. 3900 S2$=S2$+"was 1   "+OB$
  308. 3910 S2$=S2$+" in each can.":V$=V$+" ..."+STR$(N2)+" in each can":QU$="does "+SX$:GOTO 3660
  309. 3920 S1$=P1$+" found"+STR$(N1)+" hole":V$=STR$(N1)+" hole":IF N1=1 THEN 3940
  310. 3930 S1$=S1$+"s":V$=V$+"s"
  311. 3940 S1$=S1$+" dug in "+PS$+" yard.":S2$="In each hole there ":IF N2=1 THEN 3960
  312. 3950 S2$=S2$+"were "+STR$(N2)+" "+OB$+"s.":GOTO 3970
  313. 3960 S2$=S2$+"was 1 "+OB$+"."
  314. 3970 V$=V$+" ..."+STR$(N2)+" in each hole":QU$="does "+P1$:GOTO 3660
  315. 3980 QU$= "does each one":CA= N1/ N2:N= 5* RND (1)+ 1:ON N GOTO 3990,4060,4090,4140,4170
  316. 3990 N1= N1+ CA:CA= N1/ (N2+ 1):S1$= P1$+ " found a bag with"+ STR$ (N1)+ "  "+ OB$
  317. 4000 IF N1< > 1 THEN S1$= S1$+ "s"
  318. 4010 S1$= S1$+ " in it.":S2$= "After school, "+ SX$+ " shared them with "+ PS$+ STR$ (N2)+ " sister"
  319. 4020 IF N2< > 1 THEN S2$= S2$+ "s"
  320. 4030 V$= "each person gets":S2$= S2$+ ".":N2= N2+ 1:GOTO 3660
  321. 4040 S2$=S2$+ "nobody, but ate them all. Greedy child!"
  322. 4050 QU=" does each one":GOTO 3660
  323. 4060 N1=N1+CA:CA=N1/(N2+1)
  324. 4070 S1$=P1$+"'s rich uncle gives you a rosewood box with"+STR$(N1)+CHR$(13)+OB$+"s in it.":S2$="You share them with"+STR$(N2)+" friends who come "+CHR$(13)+"to a tea party."
  325. 4080 V$="each friend gets":QU$="does each or you":N2=N2+1:GOTO 3660
  326. 4090 OB$="seeds":S1$="A seed packet has "+STR$(N1)+" seed":IF N1=1 THEN 4110
  327. 4100 S1$=S1$+"s"
  328. 4110 S1$=S1$+" in it":S2$=P1$+" plants"+STR$(N2)+" seed":IF N2=1 THEN 4130
  329. 4120 S2$=S2$+"s"
  330. 4130 S2$=S2$+" in each hole.":V$="holes "+P1$+" needs":QU$="holes does "+P1$+" need":GOTO 4220
  331. 4140 S1$=P1$+" worked for"+STR$(N1)+ " day":IF N1=1 THEN 4160
  332. 4150 S1$=S1$+"s"
  333. 4160 S1$=S1$+" building "+OB$+"s.":S2$="When "+SX$+" finished, "+SX$+" had made only"+STR$(N2)+"."+".":V$="days to make each":QU$=" days does it take "+P1$+" to make 1 "+OB$:GOTO 4220
  334. 4170 S1$="You and "+P1$+" catch"+STR$(N1)+" "+OB$:IF N1=1 THEN 4190
  335. 4180 S1$=S1$+"s"
  336. 4190 S1$=S1$+" in "+OB$+" traps in the forest.":S2$="You dug"+STR$(N2)+" trap":IF N2=1 THEN 4210
  337. 4200 S2$=S2$+"s"
  338. 4210 S2$=S2$+".":V$="each trap caught (as an average)":QU$="(on the average) did each trap catch"
  339. 4220 QU$=" How many "+QU$:GOTO 3670
  340. 4230 LOCATE PY,PX:PY= PY+ 1:RETURN
  341. 5000 CLS:PRINT "THERE APPEARS TO BE SOMETHING THAT I":PRINT "CANNOT UNDERSTAND!"
  342. 5010 PRINT:PRINT "LET'S START THIS AGAIN--JUST IN CASE":PRINT "I'VE FORGOTTEN ANYTHING."
  343. 5020 PRINT:PRINT "PRESS THE <SPACE BAR> TO GO ON."
  344. 5030 Y$=INKEY$:IF Y$<>" " THEN 5030
  345. 5035 CLS
  346. 5040 RESUME 1440
  347.